package com.server.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 全局配置
 */
@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter(){
        CorsConfiguration config=new CorsConfiguration();
        config.addAllowedHeader("*"); // 配置请求头为任意请求头都接受
        config.addAllowedMethod("*"); // 配置请求方法为任意请求方法都接受
        config.addAllowedOrigin("*"); // 配置请求来源为任意请求来源都接受（这里就是跨域配置，所有都接受就可以使任意服务器都可以访问他）

        // 这里设置上面的Cors配置参数进UrlBasedCorsConfigurationSource中
        // 作用是将这个配置应用在registerCorsConfiguration方法中配置的路径中
        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource=new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",config);
        return new CorsFilter(urlBasedCorsConfigurationSource); // 这个对象是一个过滤器，会识别收到的请求，并根据传入的配置做对应的处理。

    }


}
